Skip to content

ci(j5): run the release's builds side by side - #1007

Merged
Jacksondr5 merged 1 commit into
j5/mainfrom
j5/release-parallel
Nov 10, 2026
Merged

Jacksondr5 merged 1 commit into
j5/mainfrom
j5/release-parallel

Conversation

@Jacksondr5

Copy link
Copy Markdown
Owner

Problem

A nightly takes about 25 minutes, and most of that is jobs waiting on work they don't use: the CLI archives and the Windows build wait for the signed desktop DMG, Windows waits for the macOS CLI archive, and every build waits for verify. A release also asks for a macOS runner four times. On 10 November, with GitHub short of macOS arm64 runners, each request was another 15-minute wait and cancellation (run 16 took five attempts).

What changed

  • Desktop build inside J5 Release. J5 Nightly now calls only J5 Release, which runs the signed desktop build as its own desktop job alongside everything else. A manual J5 Release still publishes the build run it names, so desktop is skipped there.
  • Two CLI archive jobs instead of one matrix. Windows embeds the Linux archive, and now waits only for that. Both jobs share their steps through a YAML anchor.
  • verify gates publishing, not the builds. If it fails, nothing is published; only build minutes are lost.
  • Two macOS runners instead of four. The darwin-arm64 CLI archive builds its own resource monitor (same cache key as j5-resource-monitors.yml). The darwin-x64 monitor is dropped: J5 ships no Intel Mac CLI and nothing uses it.
before: resolve → desktop → release/resolve → verify+monitors → CLI archives → windows → publish   (~25 min, measured)
after:  resolve → [desktop | verify | monitors → linux archive → windows | mac archive] → publish (~12–13 min, estimated)

Verified: actionlint 1.7.12 is clean on the changed workflows apart from a pre-existing github.run_started_at finding in a line this PR doesn't touch, and it parses the anchor. Both archive jobs resolve to the same 23 steps.

Not verified before merge: these workflows only run from j5/main (J5 Nightly) or by publishing a release, so the next nightly is the first real run of the new graph and of the in-job monitor build. The timing above is an estimate from the 3 November nightly's job times.

Checklist

  • One concern: the description has no "also"
  • Tests cover the changed behavior: CI config only; the next nightly is the test
  • UI changes: none
  • Live testing: nothing to live-test
  • Upstream-owned files: none touched; all four workflows are J5's
  • Upstream product: unchanged
  • Surfaces: only J5's release workflows change
  • Docs: the runbook's description of the release still holds

Claude Opus 5.5 in Claude Code (J5 Code).

🤖 Generated with Claude Code

Only the publish job now waits for every build. The desktop build moves
into J5 Release, the two CLI archives become separate jobs so Windows
waits only for the Linux one, and verify gates publishing instead of the
builds. The darwin-arm64 archive builds its own resource monitor and the
unused darwin-x64 monitor is dropped, so a release asks for two macOS
runners instead of four.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Nov 10, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
j5-code Ready Ready Preview Nov 10, 2026 10:22pm UTC

Request Review

@github-actions github-actions Bot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Nov 10, 2026
@github-actions github-actions Bot added the size:L 100-499 effective changed lines (test files excluded in mixed PRs). label Nov 10, 2026
@coderabbitai

coderabbitai Bot commented Nov 10, 2026

Copy link
Copy Markdown

Explain Change →

No actionable comments were generated in the recent review.

Walkthrough

J5 Release now schedules the desktop build and separate Linux and macOS CLI archive jobs. The workflows update resource-monitor handling and release-job dependencies. J5 Nightly no longer runs a separate desktop build job.

Changes: J5 release build flow

Layer / File(s) Summary
Desktop build scheduling
.github/workflows/j5-nightly.yml, .github/workflows/j5-release.yml, .github/workflows/j5-macos-build.yml
J5 Release calls the desktop build workflow for eligible stamped releases. J5 Nightly no longer has a separate desktop build job. The workflow comments describe the desktop artifact source for called and manual runs.
Platform-specific CLI archives
.github/workflows/j5-resource-monitors.yml, .github/workflows/j5-release.yml
The resource-monitor workflow retains Linux x64 and Windows x64 targets and removes its macOS targets. J5 Release splits Linux and macOS CLI archives into separate jobs. The Linux job downloads its monitor artifact; the macOS job restores the arm64 monitor from cache or builds it locally.
Release job dependencies
.github/workflows/j5-release.yml
The Windows job now waits for the Linux archive. The release job waits for verification, both CLI archives, and Windows. It requires the desktop job for stamped runs and allows that job to be skipped otherwise.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Possibly related PRs

  • Jacksondr5/j5code#1005: Changes the runner and job configuration for the same desktop and macOS CLI release builds.
  • Jacksondr5/j5code#537: Changes the versioning and J5 Nightly/J5 Release caller flows that these workflow updates further revise.
  • Jacksondr5/j5code#773: Adds the Windows build that now waits for the Linux CLI archive.

Suggested labels: size:M

Suggested reviewers: bryantderosier

Merge Risk: Minimal · up to a86c2

The release workflow changes are ready for normal checks; no concrete issue requiring a pre-merge fix was established.

Pre-merge checks: Passed 4

Check name Status Explanation
Title check Passed The title clearly summarizes the main change: running release builds side by side.
Description check Passed The description explains the problem and changes, reports validation and untested workflow behavior, and completes the applicable checklist. It notes that the next nightly will be the first real run.
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Finishing Touches

Generate unit tests (beta)

  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Recent review info

Run configuration

Commits

Reviewing files that changed from the base of the PR and between 4918bad and a86c269.

Files selected for processing: 4

  • .github/workflows/j5-macos-build.yml
  • .github/workflows/j5-nightly.yml
  • .github/workflows/j5-release.yml
  • .github/workflows/j5-resource-monitors.yml

Included review availability: This review used your included allowance. 2 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 3 reviews per hour.

@Jacksondr5
Jacksondr5 merged commit 2c9885a into j5/main Nov 10, 2026
34 checks passed
@Jacksondr5
Jacksondr5 deleted the j5/release-parallel branch November 10, 2026 22:40

This branch was successfully deployed

1 active deployment
Preview — a86c269f Deployed Nov 10, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L 100-499 effective changed lines (test files excluded in mixed PRs). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant